/**
 * 用户登录状态的相关封装
 */

import base from '@/util/util.base'
import nav from '@/util/util.nav'
import request from '@/util/util.request'
import appConfig from '@/config/config'
import {EngineV2} from '@/util/EngineV2'
import EZVo from '@/util/EZVo'

let login = {
	/**
	 * @description 判断访问的Page是否需要登录
	 * 如果需要登录, 则判断是否已登录,未登录则跳转到登陆界面
	 * @param {string} url 打开的页面
	 */
	checkLogin: function(url) {
		console.log("判断了checkLogin")
		
		return true;
		// 保存不需要登录的页面,如果pageUrl不在数组中存在,则需要登录
		let needLogin = true
		for (let item of appConfig.noLogin) {
			if (item == url) {
				needLogin = false
			}
		}
		// 如果需要登录,并且没有登录token标识,则跳转到登陆页面
		let openId = login.getValue('wechat_openid')
		let ezsso = login.getValue('EZSSO')
		
		if(needLogin && base.isNull(ezsso)){
			base.logInfo('需要注册:' + url)
			uni.showToast({
				title: "请登录！",
				icon: 'none',
				duration: 1000
			});	
			setTimeout(() => {
				nav.navigateTo('/sub_pages/intake/pages/login/login')
			}, 1000)
		} else {
			return true
		}
		return false
		
		// if (needLogin && base.isNull(openId)) {
		// 	base.logInfo('需要登录:' + url)
		// 	// 微信小程序,提供登录提醒
		// 	// #ifdef MP-WEIXIN
		// 	// nav.navigateTo('/intake/login')
		// 	login.weixinLogin()
		// 	// #endif

		// 	// 其它平台,直接跳转登录
		// 	// #ifdef APP-PLUS || H5
		// 	// nav.redirectTo('/intake/login')
		// 	// #endif
		
		
		// } else {
		// 	return true
		// }
		// return false
	},
	/*
	 * @description 静默登录 , 如果没有手机号跳转到登录页面
	 */
	weixinLogin() {
		uni.login({
			provider: 'weixin',
			scopes: 'auth_user',
			success: function(loginRes) {
				// 获取临时code
				let code = loginRes.code
				
				console.log("$EngineV2",EngineV2)
				let that = this
				let mini = uni.getAccountInfoSync()
				let appid = mini.miniProgram.appId;
				
				let ezssoRow = new Row();
				ezssoRow.put('user-type',"LH_MEMBER")
				ezssoRow.put('user-token',"lhlx")
				EngineV2.addFixedParam('ezsso', ezssoRow);//添加访问sso token
				
				var ivo =new Ivo("loginAtMiniapp");
				ivo.set('code',code)
				ivo.set('multi_user_token','lhlx')
				ivo.set('app_id',appid)
				ivo.single = true
				EngineV2.action(ivo, ovo => {
					let openid = ovo.get('open_id')
					let sessionkey = ovo.get('session_key')
					let mobile =ovo.get('mobile')
					console.log("ovo",ovo)
					let user_info_row = ovo.result.data.user_info_row
					login.saveValue('openID', openid)
					login.saveValue('sessionkey',sessionkey)
					login.saveValue('mobile',mobile)
					login.saveValue('mobile',mobile)
					login.saveValue('user_info_row',user_info_row)
					if(base.isNull(mobile)){
						nav.navigateTo('/intake/login')
					}
				    
					return true
				}, false)

			}
		})
	},
	
	/**
	 * @description 本地存储
	 * @param {string} key 保存变量的标识
	 * @param {any} value 保存的值
	 */
	saveValue: function(key, value) {
		uni.setStorageSync(key, value)
	},
	/**
	 * @description 从本地存储获取key数据
	 * @param {string} key 保存变量的标识
	 */
	getValue: function(key) {
		let value = uni.getStorageSync(key)
		return value
	},
	/**
	 * @description 从本地存储清除某个key
	 * @param {string} key 保存变量的标识
	 */
	clearKey: function(key) {
		uni.removeStorageSync(key)
	},
	/**
	 * @description 从本地存储清除所有数据
	 * @param {string} key 保存变量的标识
	 */
	clearAll: function() {
		uni.clearStorageSync()
	}
}
export default login
